package main

import (
	"fmt"
	"time"
)

//实现简易atm 初始值username=root passwd=123456 balance=1000
/*
1.登录成功进入
	选择
	1.存钱
	2.取钱
	3.查余额
	4.退出系统

2.登录失败有三次机会

*/

func main() {
	if key() { //用户密码成功后进入操作界面
		system()
	}
}
func key() bool {
	var username, passwd string
	fmt.Println("请输入账号和密码")
	flag := 0
	for i := 0; i < 3; i++ { //进行三次循环,成功则输出结果,不成功则会在报错后结束
		fmt.Scan(&username, &passwd)
		if username == "root" && passwd == "123456" {
			return true
		} else if i < 2 {
			fmt.Println("账号或密码出现错误,请重新输入")
		}
		flag += 1
	}
	if flag == 3 {
		fmt.Println("您已经出错三次,登录失败")
	}
	return false
}
func system() {
	fmt.Println("登陆成功,请选择模式\n1.存钱\n2.取钱\n3.查余额\n4.退出系统")
	sele := ""
	money := 1000
	var in int
	for {
		fmt.Scan(&sele) //接收选项,决定进入哪种模式
		if sele == "1" {
			fmt.Println("您进入了存钱模式,请输入金额")
			fmt.Scan(&in) //接受存入金额
			money += in
			time.Sleep(2 * time.Second) //进行一定时间暂停,模拟操作进行
			fmt.Println("操作完成,请重新选取模式\n1.存钱\n2.取钱\n3.查余额\n4.退出系统")
		} else if sele == "2" {
			fmt.Println("您进入了取钱模式,请输入金额")
			fmt.Scan(&in)
			if in <= money { //判断余额大小,不足则输出不足
				money -= in
				fmt.Println("已成功取出")
			} else {
				fmt.Println("余额不足")
			}
			time.Sleep(2 * time.Second)
			fmt.Println("操作完成,请重新选取模式\n1.存钱\n2.取钱\n3.查余额\n4.退出系统")
		} else if sele == "3" {
			fmt.Println("您的余额是:", money)
			time.Sleep(2 * time.Second)
			fmt.Println("操作完成,请重新选取模式\n1.存钱\n2.取钱\n3.查余额\n4.退出系统")
		} else if sele == "4" {
			fmt.Println("成功退出系统")
			break //当输入为4时进行循环的退出
		} else { //输入非法字符时要求进行重输
			fmt.Println("请输入1~4之间的数字")
		}
	}
}
